package org.farm.product.application.dto;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.Data;
import org.farm.product.infra.basic.entity.ProductSpuSkuAttributeValue;

/**
 * @author Frank Zou
 * @version v0.0.1
 * @date 2025/4/22
 * @description
 */
@Data
public class ProductSpuDto implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * SPU 主键。
     */
    private Long id;

    /**
     * 品牌 ID。
     */
    private Long brandId;

    /**
     * 商户 ID。
     */
    private Long merchantId;

    /**
     * 分类 ID。
     */
    private Long categoryId;

    /**
     * 商品名称。
     */
    private String name;

    /**
     * 商品卖点。
     */
    private String sellingPoint;

    /**
     * 封面图片。
     */
    private String coverImg;

    /**
     * 商品图片（逗号分割）。
     */
    private String images;

    /**
     * 商品视频。
     */
    private String video;

    /**
     * 商品价格。
     */
    private BigDecimal price;

    /**
     * 商品状态。（0：下架，1：上架）。
     */
    private Integer status;

    /**
     * SKU 中是否含有图片
     */
    private Integer hasSkuImg;

    /**
     * 版本号。
     */
    private Integer lockVersion;

    /**
     * 创建时间。
     */
    private Date createdAt;

    /**
     * 创建人。
     */
    private Long createdBy;

    /**
     * 修改时间。
     */
    private Date updatedAt;

    /**
     * 修改人。
     */
    private Long updatedBy;

    /**
     * 是否删除。
     */
    private Integer deleted;


    /**
     * 商品详情。
     */
    private ProductSpuDetailDto productSpuDetail;

    /**
     * 商品扩展信息。
     */
    private ProductSpuExtensionDto productSpuExtension;


    /**
     * 商品 SKU 列表。
     */
    private List<ProductSkuDto> productSkuList;

}